﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;

using Bricks.Component.Utils;
using Bricks.Site.Models;
using Bricks.Business.Models.AlterManagement;


namespace Bricks.Business.Service
{
    public interface IAlterService
    {
        IQueryable<AlterBackup> AlterBackups { get; }

        AlterView GetAlterByID(string alterID);

        List<AlterBillView> GetAlterBillList(Guid alterID);

        List<AlterBillView> GetAlterBillListByAlterIDStr(string alterIDStr, Guid pid);

        AlterView GetAlterBackupByID(Guid id);

        AlterView GetAlterBackupByAlterID(string alterID);

        AlterView GetAlterBackupByCondition(string alterID, string nodeCode, string department, string userName);

        List<AlterBillView> GetAlterBillBackupList(Guid alterID, string nodeCode, string department, string userName);

        void SaveAlter(AlterView alterView, List<AlterBillView> saveList);

        void SaveAlterBackup(AlterView alterView,List<AlterBillView> saveList);

        void DeleteAlterProcessData(string alterID);

        void WithdrawOrBackAlterForRequestNode(string alterID, string nodeCode);

        void WithdrawOrBackAlterForOtherNode(string alterID, string nodeCode, string nodeCodeStr);

        List<AlterView> GetAlterList();

        OperationResult DeleteSelectAlter(string alterID);

        List<AlterView> GetFinishAlter(Guid projectID, Guid contractID);
    }
}